package com.rescue.forum.entity;

import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.time.LocalDateTime;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
/**
 * 用户信息
 * @TableName user_info
 */
public class UserInfo implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 用户ID
     */
    @NotNull(message = "[用户ID]不能为空")
    @ApiModelProperty("用户ID")
    private Integer userId;
    /**
     * 昵称
     */
    @Size(max = 20, message = "编码长度不能超过20")
    @ApiModelProperty("昵称")
    private String nickName;
    /**
     * 邮箱
     */
    @Size(max = 150, message = "编码长度不能超过150")
    @ApiModelProperty("邮箱")
    private String email;
    /**
     * 用户名
     */
    @Size(max = 50, message = "编码长度不能超过50")
    @ApiModelProperty("用户名")
    private String username;
    /**
     * 密码
     */
    @Size(max = 50, message = "编码长度不能超过50")
    @ApiModelProperty("密码")
    private String password;
    /**
     * 0:女 1:男
     */
    @ApiModelProperty("0:女 1:男")
    private Integer sex;
    /**
     * 个人描述
     */
    @Size(max = 200, message = "编码长度不能超过200")
    @ApiModelProperty("个人描述")
    private String personDescription;
    /**
     * 加入时间
     */
    @ApiModelProperty("加入时间")
    private LocalDateTime joinTime;
    /**
     * 最后登录时间
     */
    @ApiModelProperty("最后登录时间")
    private LocalDateTime lastLoginTime;
    /**
     * 最后登录IP
     */
    @Size(max = 15, message = "编码长度不能超过15")
    @ApiModelProperty("最后登录IP")
    private String lastLoginIp;
    /**
     * 最后登录ip地址
     */
    @Size(max = 100, message = "编码长度不能超过100")
    @ApiModelProperty("最后登录ip地址")
    private String lastLoginIpAddress;
    /**
     * 积分
     */
    @ApiModelProperty("积分")
    private Integer totalIntegral;
    /**
     * 当前积分
     */
    @ApiModelProperty("当前积分")
    private Integer currentIntegral;
    /**
     * 0:禁用 1:正常
     */
    @ApiModelProperty("0:禁用 1:正常")
    private Integer status;
    /**
     * 头像
     */
    private String avatar;
}
